# -*- coding: utf-8 -*-
"""
mathmodeling_SAK.plot.fix
=========================

用于解决数据可视化过程中各种可能存在的问题并加以修复，包括但不限于中文
字体乱码等。

"""

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# import platform

def set_CN_font():
    """
    自动设置 Matplotlib 中文字体，自动适配 Windows 和 macOS 系统，
    解决中文乱码问题。
    
    使用示例
    --------
    
    >>> set_CN_font()
    使用的字体是: SimHei

    输入参数
    --------
    无

    """
    # 设置字体列表，在 Windows 和 macOS 上通用
    font_list = [
        'SimHei', 
        'Heiti SC', 
        'PingFang SC', 
        'Arial'
        ]

    # 检查系统上可用的字体
    available_fonts = set(
        f.name for f in fm.fontManager.ttflist)
    chosen_font = next(
        (font for font in font_list
             if font in available_fonts
             ), 'Arial')

    # 更新 Matplotlib 配置
    plt.rcParams.update({
        "figure.dpi": 100,
        "font.sans-serif": chosen_font,
        "axes.unicode_minus": False
    })
    print(f"使用的字体是: {chosen_font}")